package org.jsola.hr.vo.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;
import org.jsola.hr.constant.convert.SocCheckWrongsStatusConverter;

import java.math.BigDecimal;
import java.util.Date;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.E_SITE_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.core.example.BaseExample.N_SITE_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_COMPANY_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_COMPANY_JSON;
import static org.jsola.hr.example.SocCheckItemExample.E_EMP_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_EMP_NAME;
import static org.jsola.hr.example.SocCheckItemExample.E_EMP_SOC_INFO_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_ACCUMULATION_FUND_FINE;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_SERVICE_COST;
import static org.jsola.hr.example.SocCheckItemExample.E_EXCEL_SOCIAL_SECURITY_FINE;
import static org.jsola.hr.example.SocCheckItemExample.E_ID_CARD;
import static org.jsola.hr.example.SocCheckItemExample.E_MONTH;
import static org.jsola.hr.example.SocCheckItemExample.E_PAY_COST_TYPE;
import static org.jsola.hr.example.SocCheckItemExample.E_PERSONAL_JSON;
import static org.jsola.hr.example.SocCheckItemExample.E_SOC_CHECK_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_SOC_PROG_ID;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_ACCUMULATION_FUND_FINE;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_SERVICE_COST;
import static org.jsola.hr.example.SocCheckItemExample.E_SYS_SOCIAL_SECURITY_FINE;
import static org.jsola.hr.example.SocCheckItemExample.E_WRONGS_STATUS;
import static org.jsola.hr.example.SocCheckItemExample.E_YEAR;
import static org.jsola.hr.example.SocCheckItemExample.N_COMPANY_ID;
import static org.jsola.hr.example.SocCheckItemExample.N_COMPANY_JSON;
import static org.jsola.hr.example.SocCheckItemExample.N_EMP_ID;
import static org.jsola.hr.example.SocCheckItemExample.N_EMP_NAME;
import static org.jsola.hr.example.SocCheckItemExample.N_EMP_SOC_INFO_ID;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_ACCUMULATION_FUND_FINE;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_SERVICE_COST;
import static org.jsola.hr.example.SocCheckItemExample.N_EXCEL_SOCIAL_SECURITY_FINE;
import static org.jsola.hr.example.SocCheckItemExample.N_ID_CARD;
import static org.jsola.hr.example.SocCheckItemExample.N_MONTH;
import static org.jsola.hr.example.SocCheckItemExample.N_PAY_COST_TYPE;
import static org.jsola.hr.example.SocCheckItemExample.N_PERSONAL_JSON;
import static org.jsola.hr.example.SocCheckItemExample.N_SOC_CHECK_ID;
import static org.jsola.hr.example.SocCheckItemExample.N_SOC_PROG_ID;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_ACCUMULATION_FUND_FINE;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_SERVICE_COST;
import static org.jsola.hr.example.SocCheckItemExample.N_SYS_SOCIAL_SECURITY_FINE;
import static org.jsola.hr.example.SocCheckItemExample.N_WRONGS_STATUS;
import static org.jsola.hr.example.SocCheckItemExample.N_YEAR;

/**
 *【校验子项表】excel导出对象
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SocCheckItemExportVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    private String id;

    private String socCheckId;

    private String empId;

    @ExcelProperty(value = N_EMP_NAME)
    private String empName;

    @ExcelProperty(value = N_ID_CARD)
    private String idCard;

    private String year;

    private String month;

    private String empSocInfoId;


    private Integer payCostType;

    @ExcelProperty(value = N_PAY_COST_TYPE)
    private String payCostTypeStr;

    private BigDecimal sysPersonalSocAmount;

    private BigDecimal sysPersonalPfAmount;

    private BigDecimal sysCompanySocAmount;

    private BigDecimal sysCompanyPfAmount;

    private BigDecimal sysServiceCost;

    private BigDecimal sysSocialSecurityFine;

    private BigDecimal sysAccumulationFundFine;

    private BigDecimal excelPersonalSocAmount;

    private BigDecimal excelPersonalPfAmount;

    private BigDecimal excelCompanySocAmount;

    private BigDecimal excelCompanyPfAmount;

    private BigDecimal excelServiceCost;

    private BigDecimal excelSocialSecurityFine;

    private BigDecimal excelAccumulationFundFine;

    @ExcelProperty(value = "参保方案名称")
    private String socProgName;

    @ExcelProperty(value = "参保地区")
    private String socProgCity;

    private String socProgId;

    private String companyId;

    @ExcelProperty(value = "个人社保")
    private String personSocStr;

    @ExcelProperty(value = "个人公积金")
    private String personPfStr;

    @ExcelProperty(value = "公司社保")
    private String companySocStr;

    @ExcelProperty(value = "公司公积金")
    private String companyPfStr;

    @ExcelProperty(value = "服务费")
    private String serviceCostStr;

    @ExcelProperty(value = "补收滞纳金")
    private String socialSecurityFineStr;

    @ExcelProperty(value = "补缴滞纳金")
    private String accumulationFundFineStr;

    @ExcelProperty(value = N_WRONGS_STATUS, converter = SocCheckWrongsStatusConverter.class)
    private Integer wrongsStatus;

    private String siteId;

    private Date gmtCreate;

    private Date gmtModified;

}

